package kioschool.basic.model 
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.TextField;
	import flash.text.TextFieldType;
	
	import kioschool.basic.view.View;
	import kioschool.util.IdGenerator;
	
	/**
	 * Вершина графа, содержит уникальный идентификатор и объект отображения
	 * Родитель для всех вершин графовых моделей
	 * 
	 * @author Akimushkin Vasiliy
	 */
	public class Vertex
	{
		/**
		 * Идентификатор
		 */
		private var _id:Number;
		
		/**
		 * Представлении вершины
		 */ 
		private var _views:Array = new Array();
		
		/**
		 * Метка - используется для служеюных целей - обходы и т.д.
		 */ 
		private var _labeled:Boolean = false;
		
		/**
		 * Конструктор 
		 */ 
		public function Vertex(){
			_id=IdGenerator.getNewId();
		}

		/**
		 * Получает идентификатор 
		 */
		public function get id():Number	{
			return _id;
		}
		
		public function get labeled():Boolean{
			return _labeled;
		}
		
		public function set labeled(labeled:Boolean):void{
			_labeled = labeled;
		}
		
		public function updateViews():void{
			for each(var view:View in _views)
				view.update();
		} 

		/**
		 * Получает представление
		 */
		public function get views():Array{
			return _views;
		}
		
		/**
		 * Устанавливает представление
		 */
		public function addView(value:View):void	{
			_views.push(value);
		}
	}
}